;;; braille-input.el --- A simple input method for braille

;; Copyright (C) 2013 Swiss Library for the Blind, Visually Impaired and Print Disabled 

;; This file is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
;; by the Free Software Foundation, either version 3 of the License,
;; or (at your option) any later version.

;; This file is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:


;;; Code:

;; This code is inspired by Vim unicode braille () and http://benizi.com/vim/braille.vim
(require 'robin)

(robin-define-package "braille-numerical"
  "A simple input method for braille."

  ("b0" ?⠀)
  ("b1" ?⠁)
  ("b2" ?⠂)
  ("b12" ?⠃)
  ("b3" ?⠄)
  ("b13" ?⠅)
  ("b23" ?⠆)
  ("b123" ?⠇)
  ("b4" ?⠈)
  ("b14" ?⠉)
  ("b24" ?⠊)
  ("b124" ?⠋)
  ("b34" ?⠌)
  ("b134" ?⠍)
  ("b234" ?⠎)
  ("b1234" ?⠏)
  ("b5" ?⠐)
  ("b15" ?⠑)
  ("b25" ?⠒)
  ("b125" ?⠓)
  ("b35" ?⠔)
  ("b135" ?⠕)
  ("b235" ?⠖)
  ("b1235" ?⠗)
  ("b45" ?⠘)
  ("b145" ?⠙)
  ("b245" ?⠚)
  ("b1245" ?⠛)
  ("b345" ?⠜)
  ("b1345" ?⠝)
  ("b2345" ?⠞)
  ("b12345" ?⠟)
  ("b6" ?⠠)
  ("b16" ?⠡)
  ("b26" ?⠢)
  ("b126" ?⠣)
  ("b36" ?⠤)
  ("b136" ?⠥)
  ("b236" ?⠦)
  ("b1236" ?⠧)
  ("b46" ?⠨)
  ("b146" ?⠩)
  ("b246" ?⠪)
  ("b1246" ?⠫)
  ("b346" ?⠬)
  ("b1346" ?⠭)
  ("b2346" ?⠮)
  ("b12346" ?⠯)
  ("b56" ?⠰)
  ("b156" ?⠱)
  ("b256" ?⠲)
  ("b1256" ?⠳)
  ("b356" ?⠴)
  ("b1356" ?⠵)
  ("b2356" ?⠶)
  ("b12356" ?⠷)
  ("b456" ?⠸)
  ("b1456" ?⠹)
  ("b2456" ?⠺)
  ("b12456" ?⠻)
  ("b3456" ?⠼)
  ("b13456" ?⠽)
  ("b23456" ?⠾)
  ("b123456" ?⠿)
  ("b7" ?⡀)
  ("b17" ?⡁)
  ("b27" ?⡂)
  ("b127" ?⡃)
  ("b37" ?⡄)
  ("b137" ?⡅)
  ("b237" ?⡆)
  ("b1237" ?⡇)
  ("b47" ?⡈)
  ("b147" ?⡉)
  ("b247" ?⡊)
  ("b1247" ?⡋)
  ("b347" ?⡌)
  ("b1347" ?⡍)
  ("b2347" ?⡎)
  ("b12347" ?⡏)
  ("b57" ?⡐)
  ("b157" ?⡑)
  ("b257" ?⡒)
  ("b1257" ?⡓)
  ("b357" ?⡔)
  ("b1357" ?⡕)
  ("b2357" ?⡖)
  ("b12357" ?⡗)
  ("b457" ?⡘)
  ("b1457" ?⡙)
  ("b2457" ?⡚)
  ("b12457" ?⡛)
  ("b3457" ?⡜)
  ("b13457" ?⡝)
  ("b23457" ?⡞)
  ("b123457" ?⡟)
  ("b67" ?⡠)
  ("b167" ?⡡)
  ("b267" ?⡢)
  ("b1267" ?⡣)
  ("b367" ?⡤)
  ("b1367" ?⡥)
  ("b2367" ?⡦)
  ("b12367" ?⡧)
  ("b467" ?⡨)
  ("b1467" ?⡩)
  ("b2467" ?⡪)
  ("b12467" ?⡫)
  ("b3467" ?⡬)
  ("b13467" ?⡭)
  ("b23467" ?⡮)
  ("b123467" ?⡯)
  ("b567" ?⡰)
  ("b1567" ?⡱)
  ("b2567" ?⡲)
  ("b12567" ?⡳)
  ("b3567" ?⡴)
  ("b13567" ?⡵)
  ("b23567" ?⡶)
  ("b123567" ?⡷)
  ("b4567" ?⡸)
  ("b14567" ?⡹)
  ("b24567" ?⡺)
  ("b124567" ?⡻)
  ("b34567" ?⡼)
  ("b134567" ?⡽)
  ("b234567" ?⡾)
  ("b1234567" ?⡿)
  ("b8" ?⢀)
  ("b18" ?⢁)
  ("b28" ?⢂)
  ("b128" ?⢃)
  ("b38" ?⢄)
  ("b138" ?⢅)
  ("b238" ?⢆)
  ("b1238" ?⢇)
  ("b48" ?⢈)
  ("b148" ?⢉)
  ("b248" ?⢊)
  ("b1248" ?⢋)
  ("b348" ?⢌)
  ("b1348" ?⢍)
  ("b2348" ?⢎)
  ("b12348" ?⢏)
  ("b58" ?⢐)
  ("b158" ?⢑)
  ("b258" ?⢒)
  ("b1258" ?⢓)
  ("b358" ?⢔)
  ("b1358" ?⢕)
  ("b2358" ?⢖)
  ("b12358" ?⢗)
  ("b458" ?⢘)
  ("b1458" ?⢙)
  ("b2458" ?⢚)
  ("b12458" ?⢛)
  ("b3458" ?⢜)
  ("b13458" ?⢝)
  ("b23458" ?⢞)
  ("b123458" ?⢟)
  ("b68" ?⢠)
  ("b168" ?⢡)
  ("b268" ?⢢)
  ("b1268" ?⢣)
  ("b368" ?⢤)
  ("b1368" ?⢥)
  ("b2368" ?⢦)
  ("b12368" ?⢧)
  ("b468" ?⢨)
  ("b1468" ?⢩)
  ("b2468" ?⢪)
  ("b12468" ?⢫)
  ("b3468" ?⢬)
  ("b13468" ?⢭)
  ("b23468" ?⢮)
  ("b123468" ?⢯)
  ("b568" ?⢰)
  ("b1568" ?⢱)
  ("b2568" ?⢲)
  ("b12568" ?⢳)
  ("b3568" ?⢴)
  ("b13568" ?⢵)
  ("b23568" ?⢶)
  ("b123568" ?⢷)
  ("b4568" ?⢸)
  ("b14568" ?⢹)
  ("b24568" ?⢺)
  ("b124568" ?⢻)
  ("b34568" ?⢼)
  ("b134568" ?⢽)
  ("b234568" ?⢾)
  ("b1234568" ?⢿)
  ("b78" ?⣀)
  ("b178" ?⣁)
  ("b278" ?⣂)
  ("b1278" ?⣃)
  ("b378" ?⣄)
  ("b1378" ?⣅)
  ("b2378" ?⣆)
  ("b12378" ?⣇)
  ("b478" ?⣈)
  ("b1478" ?⣉)
  ("b2478" ?⣊)
  ("b12478" ?⣋)
  ("b3478" ?⣌)
  ("b13478" ?⣍)
  ("b23478" ?⣎)
  ("b123478" ?⣏)
  ("b578" ?⣐)
  ("b1578" ?⣑)
  ("b2578" ?⣒)
  ("b12578" ?⣓)
  ("b3578" ?⣔)
  ("b13578" ?⣕)
  ("b23578" ?⣖)
  ("b123578" ?⣗)
  ("b4578" ?⣘)
  ("b14578" ?⣙)
  ("b24578" ?⣚)
  ("b124578" ?⣛)
  ("b34578" ?⣜)
  ("b134578" ?⣝)
  ("b234578" ?⣞)
  ("b1234578" ?⣟)
  ("b678" ?⣠)
  ("b1678" ?⣡)
  ("b2678" ?⣢)
  ("b12678" ?⣣)
  ("b3678" ?⣤)
  ("b13678" ?⣥)
  ("b23678" ?⣦)
  ("b123678" ?⣧)
  ("b4678" ?⣨)
  ("b14678" ?⣩)
  ("b24678" ?⣪)
  ("b124678" ?⣫)
  ("b34678" ?⣬)
  ("b134678" ?⣭)
  ("b234678" ?⣮)
  ("b1234678" ?⣯)
  ("b5678" ?⣰)
  ("b15678" ?⣱)
  ("b25678" ?⣲)
  ("b125678" ?⣳)
  ("b35678" ?⣴)
  ("b135678" ?⣵)
  ("b235678" ?⣶)
  ("b1235678" ?⣷)
  ("b45678" ?⣸)
  ("b145678" ?⣹)
  ("b245678" ?⣺)
  ("b1245678" ?⣻)
  ("b345678" ?⣼)
  ("b1345678" ?⣽)
  ("b2345678" ?⣾)
  ("b12345678" ?⣿))

(register-input-method
 "braille-numerical"
 "braille"
 'robin-use-package
 "braille"
 "A simple numerical braille input method")

